home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD001b.dsk / SCMAFM.bas < prev    next >
BASIC Source File  |  2003-06-12  |  7KB  |  233 lines

  1. 5  REM  SCMAFM - SCHEMA FILE MAINT
  2. 10 D$ =  CHR$(4)
  3. 12 LM = 10
  4. 15  ONERR  GOTO 9000
  5. 16  HOME 
  6. 17  PRINT "SCMA FILE MAINT"
  7. 18  GOSUB 9400: INPUT "ENTER NAME OF MASTER FILE ";NF$
  8. 20  IF  LEN(NF$) <13 GOTO 25
  9. 21  PRINT "MAX NAME LENGTH IS 12": GOTO 18
  10. 25  PRINT D$"OPEN SCMA-"NF$",L60"
  11. 30  PRINT D$"READ SCMA-"NF$",R0"
  12. 50  INPUT FP: INPUT FT$: INPUT NF$: INPUT RL: INPUT LR
  13. 51 FP = FP -100
  14. 52  INPUT NF: INPUT NV: INPUT ND: INPUT NS
  15. 55  POKE 216,0
  16. 56  PRINT D$
  17. 60  HOME 
  18. 61  INPUT "DO YOU WANT TO SEE SCMA?";R$
  19. 62  IF R$ = "Y" GOTO 6000
  20. 64  HOME 
  21. 65  PRINT "SCMA CHANGE PROCEDURE NOT PROGRAMMED YET"
  22. 66  PRINT "YOU MUST DELETE SCMA-FILE AND CREATE A NEW ONE"
  23. 67  PRINT "IF YOU WANT TO CHANGE IT"
  24. 68  GOTO 9500
  25. 70  HOME 
  26. 80  PRINT "REMEMBER 1ST DATA FIELD IS THE FILE KEY": PRINT 
  27. 90  GOTO 230
  28. 100  GOSUB 9400: PRINT "TYPE OF DATA"
  29. 110  PRINT " N = NUMERIC"
  30. 120  PRINT " C = CHARACTER"
  31. 150  INPUT R$
  32. 160  IF R$ = "N" GOTO 190
  33. 170  IF R$ = "C" GOTO 400
  34. 180  GOTO 100
  35. 190 TY$ = "N": GOTO 300
  36. 230  GOSUB 9400: INPUT "NAME OF DATA FIELD ";DN$
  37. 231  IF  LEN(DN$) <13 GOTO 250
  38. 235  PRINT "*** MAX NAME LENGTH IS 12 CHARACTERS": GOTO 230
  39. 250  GOSUB 9400: INPUT "REQUIRED ON ADD, Y OR N?";RQ$
  40. 260  IF RQ$ = "Y" GOTO 100
  41. 270  IF RQ$ = "N" GOTO 100
  42. 280  GOTO 250
  43. 300  GOSUB 9400: INPUT "MINIMUM VALUE ";MN
  44. 310  GOSUB 9400: INPUT "MAXIMUN VALUE ";MX
  45. 350  GOSUB 9400: INPUT "DEFAULT VALUE ";DV
  46. 352  GOSUB 9400: INPUT "SATISFIED WITH THIS DATA FIELD?";R$
  47. 354  IF R$ = "N" GOTO 90
  48. 356  IF R$ = "Y" GOTO 359
  49. 358  GOTO 352
  50. 359 MN$ =  STR$(MN):MX$ =  STR$(MX)
  51. 360  IF  LEN(MX$) > LEN(MN$) GOTO 362
  52. 361 LM = LM + LEN(MN$) +1: GOTO 363
  53. 362 LM = LM + LEN(MX$) +1
  54. 363 LR = LR +1
  55. 364  PRINT D$"WRITE SCMA-"NF$",R"LR
  56. 365 FP = LR +1
  57. 370  PRINT FP +100: PRINT TY$: PRINT DN$: PRINT RQ$: PRINT MN: PRINT MX: PRINT DV
  58. 380  PRINT D$
  59. 385 NF = NF +1
  60. 387  IF NF = 1  AND FT$ = "S" GOTO 230
  61. 390  GOTO 1000
  62. 400 TY$ = "C"
  63. 500  GOSUB 9400: INPUT "MAXIMUM LENGTH ";ML
  64. 505  IF ML <31 GOTO 540
  65. 510  PRINT "*** MAX DATA FIELD LENGTH IS 30": GOTO 500
  66. 540  GOSUB 9400: INPUT "DEFAULT VALUE ";DV$
  67. 541  IF  LEN(DV$) <ML +1 GOTO 551
  68. 550  PRINT "DEFAULT VAL LONGER THAN MAX FIELD LENGTH": GOTO 540
  69. 551  IF  LEN(DV$) <6 GOTO 554
  70. 552 ND = ND +1
  71. 553  GOTO 555
  72. 554 NS = NS +1
  73. 555 VP = 0
  74. 556  GOSUB 9400: INPUT "SATISFIED WITH THIS DATA FIELD?";R$
  75. 557  IF R$ = "N" GOTO 90
  76. 558  IF R$ = "Y" GOTO 560
  77. 559  GOTO 556
  78. 560 LM = LM +ML +1
  79. 561  IF ML >5 GOTO 591
  80. 565  GOSUB 9400: INPUT "DO YOU WANT TO SPECIFY VALID VALUES?";R$
  81. 570  IF R$ = "N" GOTO 600
  82. 580  IF R$ = "Y" GOTO 595
  83. 590  GOTO 560
  84. 591 R$ = "N": GOTO 600
  85. 595 VP = LR +2
  86. 600 LR = LR +1
  87. 602  PRINT D$"WRITE SCMA-"NF$",R"LR
  88. 610 FP = LR +1
  89. 620  PRINT FP +100: PRINT TY$: PRINT VP: PRINT DN$: PRINT RQ$: PRINT ML: PRINT DV$
  90. 630  PRINT D$
  91. 635 NF = NF +1
  92. 640  IF R$ = "N" GOTO 1000
  93. 650 CR = LR
  94. 660 TY$ = "V"
  95. 680  GOSUB 9400: INPUT "VALID VALUE ";VV$
  96. 681  IF  LEN(VV$) <ML +1 GOTO 690
  97. 682  PRINT "LENGTH OF VALID VALUE > DATA FIELD LENGTH": GOTO 680
  98. 690  GOSUB 9400: INPUT "MEANING ";MV$
  99. 691  IF  LEN(MV$) <13 GOTO 693
  100. 692  PRINT "MAX LENGTH OF MEANING IS 12": GOTO 690
  101. 693  GOSUB 9400: INPUT "SATISFIED WITH THIS VALID VALUE?";R$
  102. 694  IF R$ = "N" GOTO 680
  103. 696  IF R$ = "Y" GOTO 700
  104. 698  GOTO 693
  105. 700 LR = LR +1
  106. 720  GOSUB 9400: INPUT "ANY MORE VALID VALUES?";R$
  107. 730  IF R$ = "N" GOTO 780
  108. 740  IF R$ = "Y" GOTO 760
  109. 750  GOTO 720
  110. 760 FP = LR +1
  111. 770  GOTO 790
  112. 780 FP = 0
  113. 790  PRINT D$"WRITE SCMA-"NF$",R"LR
  114. 800  PRINT FP +100: PRINT TY$: PRINT MV$: PRINT VV$
  115. 810  PRINT D$
  116. 815 NV = NV +1
  117. 820  IF R$ = "Y" GOTO 680
  118. 830 FP = LR +1
  119. 840  PRINT D$"WRITE SCMA-"NF$",R"CR
  120. 850  PRINT FP +100
  121. 855  PRINT D$
  122. 860  GOTO 1000
  123. 900 LR = LR +1
  124. 910  PRINT D$"WRITE SCMA-"NF$",R"LR
  125. 920  PRINT 100: PRINT "E"
  126. 925  PRINT D$
  127. 926  HOME 
  128. 927  IF LM <30 GOTO 929
  129. 928  GOTO 930
  130. 929 LM = 30
  131. 930  PRINT D$"WRITE SCMA-"NF$",R0"
  132. 940  PRINT 101: PRINT FT$: PRINT NF$: PRINT LM: PRINT LR
  133. 945  PRINT NF: PRINT NV: PRINT ND: PRINT NS
  134. 950  PRINT D$
  135. 960  HOME 
  136. 970  PRINT "SCMA IS CREATED"
  137. 980  GOTO 9500
  138. 1000  PRINT D$
  139. 1010  GOSUB 9400: INPUT "ANY MORE DATA FIELDS?";R$
  140. 1020  IF R$ = "Y" GOTO 90
  141. 1030  IF R$ = "N" GOTO 900
  142. 1040  GOTO 1010
  143. 6000  REM 
  144. 6001  INPUT "TURN ON PRINTER, THEN HIT RETURN";R$
  145. 6005  PRINT D$"PR#1"
  146. 6006  PRINT 
  147. 6010  GOSUB 9400
  148. 6020  PRINT "FILE NAME = ";NF$;"  REC LENGTH = ";RL
  149. 6025  PRINT "TYPE = ";
  150. 6030  IF FT$ = "S" GOTO 6034
  151. 6032  PRINT "KEYED": GOTO 6040
  152. 6034  PRINT "SEQUENTIAL"
  153. 6040  PRINT D$"READ SCMA-"NF$",R"FP
  154. 6050  INPUT FP: INPUT TY$:FP = FP -100
  155. 6060  IF TY$ = "V" GOTO 6080
  156. 6070  IF FP = 0 GOTO 6350
  157. 6080  IF TY$ = "N" GOTO 6130
  158. 6090  IF TY$ = "C" GOTO 6200
  159. 6100  IF TY$ = "V" GOTO 6300
  160. 6110  PRINT "*** SCMA IS MESSED UP"
  161. 6120  GOTO 9500
  162. 6130  INPUT DN$: INPUT RQ$: INPUT MN: INPUT MX: INPUT DV
  163. 6140  GOSUB 9400
  164. 6145  PRINT DN$;"   (NUMERIC)"
  165. 6150  PRINT "MIN = ";MN;"   MAX = ";MX
  166. 6160  PRINT "DEFAULT = ";DV;"   ";
  167. 6170  IF RQ$ = "Y" GOTO 6190
  168. 6180  PRINT "NOT REQUIRED ON ADD": GOTO 6040
  169. 6190  PRINT "REQUIRED ON ADD": GOTO 6040
  170. 6200  INPUT VP: INPUT DN$: INPUT RQ$: INPUT ML: INPUT DV$
  171. 6205  GOSUB 9400
  172. 6210  PRINT DN$;"   (CHARACTER)"
  173. 6220  PRINT "MAX LENGTH = ";ML;"   ";
  174. 6230  IF RQ$ = "Y" GOTO 6250
  175. 6240  PRINT "NOT REQUIRED ON ADD": GOTO 6260
  176. 6250  PRINT "REQUIRED ON ADD"
  177. 6260  IF DV$ = "" GOTO 6265
  178. 6261  GOTO 6270
  179. 6265 DV$ = "BLANK"
  180. 6270  PRINT "DEFAULT = ";DV$
  181. 6280  IF VP = 0 GOTO 6040
  182. 6290 CR = FP:FP = VP: GOTO 6040
  183. 6300  INPUT MV$: INPUT VV$
  184. 6310  PRINT VV$;"=";MV$
  185. 6320  IF FP = 0 GOTO 6340
  186. 6330  GOTO 6040
  187. 6340 FP = CR: GOTO 6040
  188. 6350  GOSUB 9400
  189. 6360  PRINT "END OF SCMA": GOTO 9500
  190. 9000  PRINT D$
  191. 9005  POKE 216,0
  192. 9010  HOME 
  193. 9020  PRINT "NO SCMA FILE FOUND"
  194. 9030  INPUT "DO YOU WANT TO CREATE ONE?";R$
  195. 9050  IF R$ = "N" GOTO 9090
  196. 9060  IF R$ = "Y" GOTO 9130
  197. 9070  PRINT "REPLY Y OR N"
  198. 9080  GOTO 9030
  199. 9090  HOME 
  200. 9100  PRINT "MOUNT DISKETTE WITH SCMA-";NF$
  201. 9101  PRINT "ON IT AND RERUN"
  202. 9110  PRINT D$"DELETE SCMA-"NF$
  203. 9120  GOTO 9999
  204. 9130 NF = 0:NV = 0:ND = 0:NS = 0
  205. 9132  HOME : PRINT "KEYED OR SEQUENTIAL?": PRINT : PRINT 
  206. 9134  PRINT "RECORD KEYS ON A KEYED FILE MUST BE"
  207. 9135  PRINT "                            UNIQUE."
  208. 9136  PRINT : PRINT "RECORDS ON A KEYED FILE MAY BE"
  209. 9137  PRINT "                   RETRIVED BY KEY."
  210. 9138  PRINT : PRINT "RECORDS ON A SEQUENTIAL FILE ARE MADE"
  211. 9139  PRINT "AVAILABLE IN THE SAME ORDER THEY ARE"
  212. 9140  PRINT "                            PUT IN."
  213. 9141  PRINT : PRINT : PRINT " 1=KEYED": PRINT " 2=SEQUENTIAL": PRINT " 3=QUIT"
  214. 9142  INPUT R$: IF R$ = "1" GOTO 9150
  215. 9144  IF R$ = "2" GOTO 9148
  216. 9146  GOTO 9110
  217. 9148 FT$ = "S": GOTO 9161
  218. 9150 FT$ = "Z"
  219. 9161  PRINT D$"DELETE SCMA-"NF$
  220. 9162  PRINT D$"OPEN SCMA-"NF$",L60"
  221. 9170  PRINT D$"WRITE SCMA-"NF$",R0"
  222. 9175 FP = 1
  223. 9180  PRINT FP +100: PRINT FT$: PRINT NF$: PRINT 0: PRINT 0
  224. 9185  PRINT 0: PRINT 0: PRINT 0: PRINT 0
  225. 9190  IF FT$ = "Z" GOTO 9230
  226. 9192 DN$ = "RECORD NBR":RQ$ = "Y":TY$ = "N":MN = 1:MX = 9999:DV = 0: GOTO 359
  227. 9230  PRINT D$
  228. 9240  GOTO 70
  229. 9400  PRINT "------------------------------------"
  230. 9410  RETURN 
  231. 9500  PRINT D$"CLOSE SCMA-"NF$
  232. 9510  PRINT D$"PR#0"
  233. 9999  PRINT D$"RUN JELLO"